import { sendCode,login,getUserInfo } from '../../api/user'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    times: 60,
    flag: true,
    mobile: '',
    code: '',
    errorMobileMessage:'',//校验手机号
    errMobileFlag: false,  //校验手机号
    errorCodeMessage:'',//校验验证码
    errCodeFlag: false,  //校验验证码
  },
  // 手机号输入框
  changeMobile(e) {
    this.setData({
      mobile: e.detail
    })
  },
  // 验证码输入框
  changeCode(e) {
    this.setData({
      code: e.detail
    })
  },
  // 获取验证码
  async sendCode() {
    try {
      if(this.data.mobile.length === 11){
        await sendCode(this.data.mobile)
        this.setData({
          flag: false,
          times: 60
        })
        let timer = setInterval(()=>{
          this.setData({
            flag: false,
            times:this.data.times - 1
          })
          if(this.data.times === 0) {
            clearInterval(timer) 
            this.setData({
              flag: true,
            })
          }
        },1000)
        wx.showToast({
          title: '发送成功',
          icon: 'success'
        })
      }else {
        this.setData({
          errorMobileMessage:'请输入手机号',
          errMobileFlag: true,
        })
      }
    } catch (err) {
      if(!this.data.mobile){
        wx.showToast({
          title: '输入正确手机号',
          icon: 'error'
        })
      }else {
        wx.showToast({
          title: '获取验证码频繁',
          icon: 'error'
        })
      }
    }
    
  },
  // 校验手机号
  mobileValidate(e) {
    const reg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/
    if(!e.detail.value){
      this.setData({
        errorMobileMessage:'请输入手机号',
        errMobileFlag: true
      })
    }else if(!reg.test(e.detail.value)){
      this.setData({
        errorMobileMessage:'手机号格式错误',
        errMobileFlag: true
      })
    }else {
      this.setData({
        errorMobileMessage:'',
        errMobileFlag: false
      })
    }
  },
  // 校验验证码
  codeValidate(e) {
    if(!e.detail.value){
      this.setData({
        errorCodeMessage:'请输入验证码',
        errCodeFlag: true
      })
    }else if(e.detail.value.length !== 6){
      this.setData({
        errorCodeMessage:'验证码格式错误',
        errCodeFlag: true
      })
    }else {
      this.setData({
        errorCodeMessage:'',
        errCodeFlag: false
      })
    }
  },
  // 登录
  async onLogin() {
    try {
      if(!!this.data.mobile || !!this.data.code){
        if(this.data.mobile.length === 11 || this.data.code.length === 6){
          const { data } = await login({
            mobile:this.data.mobile,
            code:this.data.code
          })
          // 本地存储token
          const value = JSON.stringify(data)
          wx.setStorageSync('hmHead', value)
          this.getUser()
          wx.switchTab({
            url: '/pages/home/home',
          })
          wx.showToast({
            title:'登录成功',
            icon:'success'
          })
        }else {
          wx.showToast({
            title:'输入正确手机号',
            icon:'error'
          })
        }
      }else {
        this.setData({
          errorMobileMessage:'请输入手机号',
          errMobileFlag: true,
          errorCodeMessage:'请输入验证码',
          errCodeFlag: true
        })
      }
    } catch (err) {
      wx.showToast({
        title:'登录失败',
        icon:'error'
      })
    }
  },
  // 关闭此页面
  closeLoginPage() {
    // if(!wx.getStorageSync('hmHead')) return
    wx.switchTab({
      url: '/pages/home/home',
    })
  },
  // 获取用户个人信息
  async getUser() {
    const { data } = await getUserInfo()
    const value = JSON.stringify(data)
    wx.setStorageSync('user', value)
    
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    
  }
})